package org.jeecg.modules.rooms.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 商品表
 * </p>
 *
 * @author fendo
 * @since 2023-03-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ces_goods")
public class CesGoods extends Model<CesGoods> {

    private static final long serialVersionUID = 1L;

    private String id;

    /**
     * 酒店ID
     */
    private String hotelId;

    /**
     * 商品大图
     */
    private String cover;

    /**
     * 商品图片
     */
    private String images;

    /**
     * 商品名称
     */
    private String name;

    /**
     * 商品名称
     */
    private String simplySpell;

    /**
     * 库存告警数
     */
    private String stockWarning;

    /**
     * 商品规格
     */
    private String spec;

    /**
     * 商品口味IDS
     */
    private String foodTasteIds;

    /**
     * 加料IDs
     */
    private String reinforcedIds;

    /**
     * 是否捶打
     */
    private Boolean beat;

    /**
     * 是否记重
     */
    private Boolean weighDown;

    /**
     * 商品分类Id
     */
    private String goodType;

    /**
     * 商品单位
     */
    private String goodUnit;

    /**
     * 条码
     */
    private String barCode;

    /**
     * 进价
     */
    private BigDecimal bid;

    /**
     * 售价
     */
    private BigDecimal sellingPrice;

    /**
     * 进货量
     */
    private Integer purchases;

    /**
     * 销售量
     */
    private Integer salesVolume;

    /**
     * 库存量
     */
    private Integer inventory;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * app是否上架 0 否 1是
     */
    private Boolean appState;

    /**
     * 能否储值卡
     */
    private Boolean canStoreCard;

    /**
     * 能否积分支付
     */
    private Boolean canIntegralPay;

    /**
     * 积分价格
     */
    private BigDecimal integralPrice;

    /**
     * 描述
     */
    private String remark;

    /**
     * 创建时间
     */
    @TableField("creatAt")
    private LocalDateTime creatAt;

    /**
     * 修改时间
     */
    @TableField("updateAt")
    private LocalDateTime updateAt;

    /**
     * 逻辑删除字段
     */
    private Boolean invalid;

    /**
     * 临时商品
     */
    private Boolean isTemp;

    /**
     * 仓库商品id
     */
    private String depositoryInGoodsId;
    /**
     * 启用库存模块
     */
    private Boolean isStock;

    @TableField(exist = false)
    @ApiModelProperty(value = "分类名称")
    private String goodTypeName;

    /**
     * 供应商id
     */
    @TableField(exist = false)
    private String supplierInGoodsId;

    @TableField(exist = false)
    @ApiModelProperty(value = "单位名称")
    private String goodsUnitName;

    public static final String ID = "id";

    public static final String HOTEL_ID = "hotel_id";

    public static final String COVER = "cover";

    public static final String IMAGES = "images";

    public static final String NAME = "name";

    public static final String FOOD_TASTE_IDS = "food_taste_ids";

    public static final String REINFORCED_IDS = "reinforced_ids";

    public static final String BEAT = "beat";

    public static final String WEIGH_DOWN = "weigh_down";

    public static final String GOOD_TYPE = "good_type";

    public static final String GOOD_UNIT = "good_unit";

    public static final String BAR_CODE = "bar_code";

    public static final String BID = "bid";

    public static final String SELLING_PRICE = "selling_price";

    public static final String PURCHASES = "purchases";

    public static final String SALES_VOLUME = "sales_volume";

    public static final String INVENTORY = "inventory";

    public static final String SORT = "sort";

    public static final String APP_STATE = "app_state";

    public static final String CAN_STORE_CARD = "can_store_card";

    public static final String CAN_INTEGRAL_PAY = "can_integral_pay";

    public static final String INTEGRAL_PRICE = "integral_price";

    public static final String REMARK = "remark";

    public static final String CREATAT = "creatAt";

    public static final String UPDATEAT = "updateAt";

    public static final String INVALID = "invalid";

    public static final String ISTEMP = "is_temp";

    @Override
    public Serializable pkVal() {
        return this.id;
    }

    @TableField(exist = false)
    private  Boolean isSellClear;
}
